home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / disk & file tools / archandler / archandler_guide (.txt) < prev    next >
Amigaguide Document  |  1996-04-07  |  21KB  |  479 lines

  1. @database ARCHandler
  2. @$VER: ARCHandler.guide 37.40 (6.7.94)
  3. @(C) Rafael D'Halleweyn
  4. @author Rafael D'Halleweyn
  5. @index index
  6. @node main "ARCHandler 1.0a"
  7. @prev main
  8. @next main
  9.                               @{b}ARCHandler 1.0a@{ub}
  10.                              ================
  11.             ARCHandler is Copyright 
  12.  1994 Rafael D'Halleweyn.
  13.                            All rights reserved.
  14.                           @{"       Disclaimer      " link disclaimer}
  15.                           @{"    Shareware Notice   " link shareware}
  16.                           @{"      Introduction     " link introduction}
  17.                           @{"      Requirements     " link requirements}
  18.                           @{"        Starting       " link starting}
  19.                           @{"         Using         " link using}
  20.                           @{" Technical Information " link techno}
  21.                           @{"        History        " link history}
  22.                           @{"       The author      " link author}
  23.                        When I'm sad she comes to me
  24.                           with a thousand smiles
  25.                            she gives to me free
  26.                    It's alright, it's alright she says,
  27.                       Take anything you want from me,
  28.                                  anything.
  29.                                                 Jimi Hendrix
  30. @endnode
  31. @node disclaimer "ARCHandler: Disclaimer"
  32. @prev disclaimer
  33. @next shareware
  34.   @{b}@{u}Disclaimer@{ub}@{uu}
  35. With  this  document  I  make  no  warranties  or  representations,  either
  36. expressed  or  implied,  with  respect to the program described herein. The
  37. program  and  the  information presented herein is being supplied on an `as
  38. is'  basis  and  is  expressly subject to change without notice. The entire
  39. risk  as to the use of the program and the information presented is assumed
  40. by the user. In no event will I be liable for direct, indirect, incidental,
  41. or consequential damages resulting from any claim arising out of the use of
  42. the  program  or  the  information  presented  herein,  even if I have been
  43. advised of the possibilities of such damages.
  44. @endnode
  45. @node shareware "ARCHandler: Shareware Notice"
  46. @prev disclaimer
  47. @next introduction
  48.   @{b}@{u}ARCHandler is Shareware@{ub}@{uu}
  49. This package is released as shareware. This means you can copy it freely as
  50. long  as  you  don't ask any money for it, except perhaps a nominal fee for
  51. copying.  If  you  like  and use this package on a regular base, you should
  52. send  @{"me" link author}  a contribution of 500 BEF or USD 15. Send money by International
  53. Money  Order,  EuroCheck (in BEF!) or Cash.
  54. The  package  is  Copyright  
  55.  Rafael D'Halleweyn, All Rights Reserved. The
  56. author  reserves the right to change the status of this package whenever he
  57. finds it appropriate.
  58. This  package  should  not  be  spread  in  any  other form than an LhA (or
  59. equivalent)  archive  and  all  parts  of it should be spread together. The
  60. package  may  not  be  altered in any way and cannot be used for commercial
  61. purposes  without  the  prior written permission of the author. The archive
  62. should contain the following files:
  63.       ARCHandler (dir)
  64.           C (dir)
  65.             FlushARC
  66.             MountListEntry
  67.           L (dir)
  68.             arc-handler                      
  69.           S (dir)
  70.             MountList-header
  71.             WhichLhA
  72.         ARC
  73.         ARC.info
  74.         ARCHandler.guide
  75.         ARCHandler.guide.info
  76.         Install
  77.         Install.info
  78.         ReadmeQuick
  79.         ReadmeQuick.info
  80.     ARCHandler.info
  81. The   installation-script  (`Install')  and  the  extra  commands  it  uses
  82. (`MountListEntry')  are  also  copyrighted  and  can't be used in any other
  83. project/archive without the prior written permission of the author.
  84. @endnode
  85. @node introduction "ARCHandler: Introduction"
  86. @prev shareware
  87. @next requirements
  88.   @{b}@{u}Introduction to the ARCHandler@{ub}@{uu}
  89. @{"Archives" link archive}  (such  as  @{"LhA" link lha}  , Zip, Zoo, Tar, ...) are very easy to store and
  90. move  large  amounts  of  files.  However,  if  you  wish  to use the files
  91. contained  in  the  archive  you  always  have  to extract the files first.
  92. Secondly,  to  easily  browse  through the archive, you have to extract the
  93. whole archive.
  94. Wouldn't  it  be  easier if you could treat archives just like directories:
  95. move to a directory, look which files are in the directory and possibly use
  96. one of those files.
  97. I have already heard a lot of suggestions in this direction, so the idea is
  98. neither  mine nor is it original. But I've never seen an implementation, so
  99. I tried to make my own and this is the result.
  100. Currently the ARCHandler only supports @{"lha" link lha}-archives.
  101. @endnode
  102. @node archive "What is an archive?"
  103. @prev archive
  104. @next archive
  105. In  this  text the word @{i}archive @{ui}is used to indicated a group of files, that
  106. are  stored in one big file, possibly also containing the file-structure of
  107. the original (directories) and maybe using compression to store the files.
  108. @{i}Archives @{ui}are mainly used to move large amounts of data from one computer to
  109. another  (via  disk/modem/ftp/...).  @{i}Archives @{ui}are also an easy way to store
  110. that data.
  111. The ARCHandler currently only supports @{"lha" link lha}-archives.
  112. @endnode
  113. @node lha "What is an lha-archive?"
  114. @prev lha
  115. @next lha
  116. LhA  is  probably  the  most widely used archiver on the Amiga. It uses the
  117. Lempel-Ziv-Huffman (LZH) compression scheme to reduce archive size. Several
  118. other  LZH-archives  exist for the Amiga (LhArcA, LhArc, LZ, LhEx, ...) and
  119. for UNIX and MS-DOS machines.
  120. @endnode
  121. @node requirements "ARCHandler: Requirements"
  122. @prev introduction
  123. @next starting
  124.   @{b}@{u}Requirements to use the ARCHandler@{ub}@{uu}
  125. ARCHandler  currently requires an Amiga running Workbench/Kickstart 2.04 or
  126. higher.  You  also  need  the  LhA  command  (
  127.   Stefan  Boberg),  both the
  128. registered and evaluation version should work.
  129. ARCHandler  currently also needs the PIPE-device. If you didn't change your
  130. Workbench-partition  after Workbench-installation this should be no problem
  131. (otherwise you might want to add a `Mount PIPE:' to your User-Startup).
  132. To test the handler, a few lha-archives can also be very handy :).
  133. @endnode
  134. @node starting "ARCHandler: Starting"
  135. @prev requirements
  136. @next using
  137.   @{b}@{u}Starting the ARCHandler@{ub}@{uu}
  138. To be able to use the ARCHandler you should install it first. If you double
  139. click  the  `Install'-icon,  the  handler  will  be  installed for you (the
  140. installation  requires  the  Commodore Installer, 
  141.  Commodore). If you only
  142. want  to  test  the  handler,  double  click the `ARC'-icon and a disk-icon
  143. should appear on the Workbench-window named `Archives'.
  144. Once  installed,  you'll  have to start the handler. If you've selected the
  145. `Always  mount  ARC:  on  start-up?'-option  during  the  installation, the
  146. handler  will  be started after each reset. If you did not use this option,
  147. you'll have to start it manually:
  148. under  Workbench  2.1 or higher the easiest way is to double-click the
  149.    `ARC'-icon   in  the  `Storage/DOSDrivers'-drawer  of  your  Workbench
  150.    partition (or disk);
  151. if  you  are using  Workbench 2.04  or higher you can (also) start the
  152.    handler by entering the following command in a Shell:
  153.                                @{i}Mount ARC: @{ui}
  154. If  everything  was  installed  correctly, a disk-icon should appear on the
  155. Workbench-window   named  `Archives'  (or  the  name  you  selected  during
  156. installation).
  157. @endnode
  158. @node using "ARCHandler: Using"
  159. @next techno
  160. @prev starting
  161.   @{b}@{u}Using the ARCHandler@{ub}@{uu}
  162. Once  the  ARCHandler is started, you should be able to use it as any-other
  163. AmigaDOS-device.
  164. The  root-directory  of  the  device contains all the volumes that AmigaDOS
  165. knows  of  (it  even contains the ARC-volume, you can use this to access an
  166. archive  in an archive). Just enter one of those volumes and you'll see all
  167. the  files  and directories that are on that volume. You're able to use any
  168. of these files the same way as on the normal volume, read a text, execute a
  169. program (only read operations are supported in this version).
  170. When  you  come  across an lha-archive you'll notice that the handler tells
  171. you  that  it is a directory. When you enter the archive you'll see all the
  172. files  and  directories that reside in the archive. These files can be used
  173. as  normal files, you can read texts or execute the programs. Currently the
  174. handler doesn't support writing to files in an archive.
  175. @endnode
  176. @node techno "ARCHandler: Technical Info"
  177. @prev using
  178. @next history
  179.   @{b}@{u}Some technical background@{ub}@{uu}
  180.   @{" Startup-arguments  " link startup}
  181.   @{"  Workbench icons   " link icons}
  182.   @{" Archive-file-lists " link filelists}
  183.   @{"  FlushARC command  " link flusharc}
  184.   @{"    Packet types    " link packets}
  185. @endnode
  186. @node startup "ARCHandler: Startup-arguments"
  187. @prev startup
  188. @next icons
  189. @toc techno
  190.   @{b}Startup-arguments@{ub}
  191. The ARCHandler uses the `Startup'-field of a MountList/DOSDriver to let the
  192. user  pass some important information. The string in the `Startup'-field is
  193. parsed  with ReadArgs(). The string should always have double-quotes around
  194. it  and  you should only use single-quotes (') in the string. Currently the
  195. arc-handler recognizes the following arguments:
  196.     @{" NAME       " link namearg}
  197.     @{" LHA        " link lhaarg}
  198.     @{" TEMPDIR    " link tempdirarg}
  199.     @{" BUFFERS    " link buffersarg}
  200.     @{" DISKICON   " link diskiconarg}
  201.     @{" DRAWERICON " link drawericonarg}
  202.     @{" NOEXTCHECK " link noextcheckarg}
  203. The template of the `Startup'-field is:
  204.   @{i}NAME/K,LHA/K,TEMPDIR/K,BUFFERS/K/N,DISKICON/K,DRAWERICON/K,NOEXTCHECK/S @{ui}
  205. Example:
  206.   Startup ="LHA=Work:C/LhA DISKICON='Work:Extra Icons/ARCDisk.info'"
  207. NOTE:  The  `Install'  script  adds  a  `Startup'  tool  type  to  the
  208. `ARC'-dosdriver-icon.  So,  if you want to change the `Startup'-field,
  209. you  should  change the tool type (use the `Icons/Information...' menu
  210. item of the Workbench)!
  211. @endnode
  212. @node namearg "ARCHandler: NAME argument"
  213. @prev namearg
  214. @next lhaarg
  215. @toc startup
  216.   @{u}NAME@{uu}
  217. The  NAME  argument in the `Startup'-field of a MountList/DOSDriver is used
  218. to  specify  the  name of the volume. You can specify any name you want, if
  219. you  want  to  use spaces in the name surround the name with single-quotes.
  220. The default name is `Archives'.
  221. @endnode
  222. @node lhaarg "ARCHandler: LHA argument"
  223. @prev namearg
  224. @next tempdirarg
  225. @toc startup
  226.   @{u}LHA@{uu}
  227. The LHA argument in the `Startup'-field of a MountList/DOSDriver is used to
  228. specify  the  place  of the `LhA'-command. You should specify the full path
  229. (including  device/volume/assign).  If  the path contains spaces you should
  230. surround the name with single-quotes. The default is `C:LhA'.
  231. @endnode
  232. @node tempdirarg "ARCHandler: TEMPDIR argument"
  233. @prev lhaarg
  234. @next buffersarg
  235. @toc startup
  236.   @{u}TEMPDIR@{uu}
  237. The  TEMPDIR  argument  in  the  `Startup'-field  of  a MountList/DOSDriver
  238. specifies  a directory where the ARCHandler can create its temporary files.
  239. All  the  files  that the handler extracts from archives are placed in this
  240. directory.  This  directory should be large enough to hold all those files.
  241. You  should  specify the full path (including device/volume/assign). If the
  242. path  contains  spaces you should surround the path with single-quotes. The
  243. default is `T:'.
  244. Special  note about MultiUser: don't use a directory on a muFS-partition as
  245. the directory for temporary files!
  246. @endnode
  247. @node buffersarg "ARCHandler: BUFFERS argument"
  248. @prev tempdirarg
  249. @next diskiconarg
  250. @toc startup
  251.   @{u}BUFFERS@{uu}
  252. The  BUFFERS  argument  in  the  `Startup'-field  of  a MountList/DOSDriver
  253. indicates  the  number  of  unused  @{"archive-file-lists" link filelists} that the ARCHandler
  254. keeps  in  memory.  This argument should be a number. The default number is
  255. two and should probably not be changed.
  256. @endnode
  257. @node diskiconarg "ARCHandler: DISKICON argument"
  258. @prev buffersarg
  259. @next drawericonarg
  260. @toc startup
  261.   @{u}DISKICON@{uu}
  262. With  the  DISKICON  argument you can specify the name of the icon that the
  263. volume  should  use  as its disk-icon. This is the icon that appears in the
  264. Workbench window. This arguments defaults to `DEVS:ARCDisk_info'.
  265. Special  note  about  MultiUser:  don't  place  the  disk-icon  on  a muFS-
  266. partition!
  267. @endnode
  268. @node drawericonarg "ARCHandler: DRAWERICON argument"
  269. @prev diskiconarg
  270. @next noextcheckarg
  271. @toc startup
  272.   @{u}DRAWERICON@{uu}
  273. With the DRAWERICON argument you can specify the name of the icon that will
  274. be used for the archives that are represented as directories. This argument
  275. defaults to `DEVS:ARCDrawer_info'.
  276. @endnode
  277. @node noextcheckarg "ARCHandler: NOEXTCHECK argument"
  278. @prev drawericonarg
  279. @next noextcheckarg
  280. @toc startup
  281.   @{u}NOEXTCHECK@{uu}
  282. ARCHandler  recognizes lha-archives by looking at the contents of the file.
  283. Normally, the handler will only open (and thus recognize) files with a name
  284. ending in `.lha' or `.lzh'.
  285. When  you  specify  the  NOEXTCHECK  argument the handler will open all the
  286. files  and  it  will  also recognize archives with a filename not ending in
  287. `.lha'  or `.lzh'. However, this will take much longer to scan directories,
  288. so  by  default the option is off (the argument is a switch, if you use the
  289. argument in the `Startup'-field, the option is enabled).
  290. @endnode
  291. @node icons "ARCHandler: Workbench icons"
  292. @prev startup
  293. @next filelists
  294. @toc techno
  295.   @{b}Workbench icons@{ub}
  296. To  be  able  to  easily  access  the ARCHandler through the Workbench, the
  297. handler adds extra icons:
  298.    -In  the  root  of  the  ARCHandler  volume  there  is  a disk-icon
  299.     (Disk.info).  This  icon  is  currently  the only file that can be
  300.     written to. (see also @{"DISKICON" link diskiconarg})
  301.    -In  the  root  of  the  volume there are also drawer-icons for the
  302.     other volumes. These icons are created from the original disk-icon
  303.     on  that  volume  (if non disk-icon exists on a certain volume the
  304.     default disk-icon will be used). You can't write to these icons.
  305.    -For  all  the  archives  the  handler  recognizes a drawer-icon is
  306.     added.   These   icons   are   also  write  protected.  (see  also
  307.     @{"DRAWERICON" link drawericonarg})
  308. @endnode
  309. @node filelists "ARCHandler: Archive-file-lists"
  310. @prev icons
  311. @next flusharc
  312. @toc techno
  313.   @{b}Archive-file-lists@{ub}
  314. ARCHandler  keeps  a certain amount of unused archive-file-lists (a list of
  315. all the files and directories in an archive) in memory (@{"BUFFERS" link buffersarg}). This has
  316. the  advantage  that the handler won't have to re-list the archive on every
  317. access. This results in a faster response.
  318. This also has a small side-effect, the handler keeps a lock on all archives
  319. whose  archive-file-list  is still in memory. The handler uses a simple LRU
  320. (least-recently-used) replacement rule to select the archive-file-list that
  321. will be freed when another archive-file-list is no longer used. As a result
  322. the  archive-file-list-lock  won't  be released until enough other archives
  323. are used.
  324. If,  at  a  certain  moment,  you want to free all unused archive-lists and
  325. locks you can use the @{"FlushARC" link flusharc} command.
  326. @endnode
  327. @node flusharc "ARCHandler: FlushARC"
  328. @prev filelists
  329. @next packets
  330. @toc techno
  331.   @{b}FlushARC command@{ub}
  332. You   can  use  the  FlushARC-command  if  you  want  to  free  all  unused
  333. @{"archive-file-lists" link filelists}   and  archive-locks.  The  FlushARC  command  has  the
  334. following template:
  335.                               @{i}FlushARC DEVICE @{ui}
  336. The  DEVICE  argument defaults to `ARC:'. The DEVICE argument should be the
  337. name of the device, not the name of the volume.
  338. To flush the device named `ARC2:' use:
  339.                               @{i}FlushARC ARC2: @{ui}
  340. @endnode
  341. @node packets "ARCHandler: Packet types"
  342. @prev flusharc
  343. @next packets
  344. @toc techno
  345.   @{b}Unsupported packets@{ub}
  346. This  is  a  list  of  the packets types that the handler currently doesn't
  347. support:
  348.     These actions will be supported in a future writable version:
  349.       ACTION_CREATE_DIR
  350.       ACTION_DELETE_OBJECT
  351.       ACTION_RENAME_OBJECT
  352.       ACTION_SET_COMMENT
  353.       ACTION_SET_DATE
  354.       ACTION_SET_FILE_SIZE
  355.       ACTION_SET_PROTECT
  356.     These   two  actions  don't  need to  be  implemented because  the
  357.     dos.library  emulates  them  by  using  ACTION_EXAMINE_OBJECT  and
  358.     ACTION_EXAMINE_NEXT:
  359.       ACTION_EXAMINE_ALL
  360.       ACTION_EXAMINE_ALL_END
  361.     actions that may be implemented, if needed:
  362.       ACTION_ADD_NOTIFY
  363.       ACTION_CHANGE_MODE
  364.       ACTION_COPY_DIR_FH
  365.       ACTION_EXAMINE_FH
  366.       ACTION_FH_FROM_LOCK
  367.       ACTION_FREE_RECORD
  368.       ACTION_LOCK_RECORD
  369.       ACTION_MAKE_LINK
  370.       ACTION_PARENT_FH
  371.       ACTION_READ_LINK
  372.       ACTION_REMOVE_NOTIFY
  373.       ACTION_RENAME_DISK
  374.       ACTION_SET_OWNER
  375.     Actions that won't be implemented:
  376.       ACTION_FORMAT
  377.       ACTION_FLUSH
  378.       ACTION_MORE_CACHE
  379.       ACTION_INHIBIT
  380.       ACTION_WRITE_PROTECT
  381.   @{b}Packets ARCHandler needs@{ub}
  382. This  is  the  minimal list of packets that an underlying FileSystem should
  383. support, if you want to use it through the ARCHandler:
  384.     ACTION_COPY_DIR
  385.     ACTION_END
  386.     ACTION_EXAMINE_NEXT
  387.     ACTION_EXAMINE_OBJECT
  388.     ACTION_FINDINPUT
  389.     ACTION_FREE_LOCK
  390.     ACTION_LOCATE_OBJECT
  391.     ACTION_PARENT
  392.     ACTION_READ
  393.     ACTION_SEEK
  394. @endnode
  395. @node history "ARCHandler: History"
  396. @prev techno
  397. @next author
  398.   @{b}@{u}History of the ARCHandler@{ub}@{uu}
  399.  -----------------------------------------------------------------------
  400. release 1.0 [37.129 (12.7.94)]
  401.     -First release.
  402.  -----------------------------------------------------------------------
  403. release 1.0a [37.131 (14.7.94)]
  404.     -Volumes  that  have  the  same  name as a device couldn't be used
  405.      through the handler (reported by Erik Bergen).
  406.     -Removed a nasty Enforcer hit.
  407.     -Made some changes to the installation script.
  408.  -----------------------------------------------------------------------
  409. future release
  410.     -Support for 2.0-packets.
  411.     -Fully  writable  filesystem,  with  the ability to create/change
  412.      files in archives.
  413.     -Support for more archive types (zip/zoo/tar/...).
  414.     -Support for packed files (XPK/PowerPacker/Imploder/...).
  415.    These  are  just  some  of  the  features  I  @{i}might @{ui} add to a future
  416.    release.  I  don't guarantee that either of these features will ever
  417.    be  implemented (but I hope they will). If you've got any good ideas
  418.    for a future release let @{"me" link author} know.
  419. @endnode
  420. @node author "About the Author"
  421. @prev history
  422. @next author
  423.   ARCHandler was written by @{b}Rafael D'Halleweyn@{ub}.
  424. If  you  have any questions, remarks, suggestions or bug reports please let
  425. me  know.  You  can contact me via normal mail:
  426.                             Rafael D'Halleweyn
  427.                              Perckhoevelaan 17
  428.                              B-2610 Antwerpen
  429.                                   BELGIUM
  430. Or you can try to reach me via EMail, you can reach me at:
  431.                         amiga@suntew.ruca.ua.ac.be
  432. (but  this  is not my own account). I will try to read my mail there during
  433. July, August and September. From October you'll be able to reach me at:
  434.                         Rafael.DHalleweyn@rug.ac.be
  435. (this is my own account).
  436.       [if  you  only  have  fido-access you should send a message to
  437.       UUCP  (2:29/777.0)  and  the  first line of the message should
  438.       read `To: <fill in email address>',  the second line should be
  439.       empty]
  440. I'd  like  to  thank  Nico  Fran
  441. ois,  Johan Billing, Per-Anders Josefsson,
  442. Stefan  Zeiger,  Tom  De  Voeght and Peter Stuer for 
  443. eta-testing. I'd also
  444. like  to thank David Larsson for the excellent KingCON. These seven persons
  445. shouldn't  try to send me the shareware fee, because then I'll have to send
  446. it back :-).
  447. ARCHandler is Copyright 
  448.  Rafael D'Halleweyn. All Rights Reserved.
  449. @endnode
  450. @node index "ARCHandler: Index"
  451. @prev index
  452. @next index
  453.   @{b}Index@{ub}
  454.     @{"archive" link archive}
  455.     @{"author" link author}
  456.     @{"BUFFERS" link buffersarg}
  457.     @{"Disclaimer" link disclaimer}
  458.     @{"DISKICON" link diskiconarg}
  459.     @{"DRAWERICON" link drawericonarg}
  460.     @{"filelists" link filelists}
  461.     @{"FlushARC" link flusharc}
  462.     @{"history" link history}
  463.     @{"icons" link icons}
  464.     @{"Introduction" link introduction}
  465.     @{"LhA" link lha}
  466.     @{"LHA arguments" link lhaarg}
  467.     @{"NAME" link namearg}
  468.     @{"NOEXTCHECKARG" link noextcheckarg}
  469.     @{"packets" link packets}
  470.     @{"Requirements" link requirements}
  471.     @{"Shareware" link shareware}
  472.     @{"Starting" link starting}
  473.     @{"Startup-field" link startup}
  474.     @{"Technical Information" link techno}
  475.     @{"TEMP" link tempdirarg
  476.     @{"Using" link using}
  477.     @{"Workbench icons" link icons}
  478. @endnode
  479.